importPackage(Packages.de.elo.ix.client);
//@include lib_Class.js
//@include lib_sol.common.SordUtils.js
//@include lib_sol.common.Map.js
//@include lib_sol.common.AclUtils.js
//@include lib_sol.common.RepoUtils.js
//@include lib_sol.common.AsyncUtils.js
//@include lib_sol.common.ObjectFormatter.js
//@include lib_sol.common.Template.js
//@include lib_sol.common.ix.FunctionBase.js
//@include lib_sol.dev.ix.ActionUtils.js
var logger = sol.create("sol.Logger", { scope: "sol.dev.ix.functions.RenamePackage" });
/**
* Rename Packages from templates.
*
* Dynamic parts are in [handlebars] (http://handlebarsjs.com/) syntax (see also {@link sol.common.Template})
* and have access to the sord object in form of a {@link sol.common.ObjectFormatter.TemplateSord TemplateSord}.
*
* # As workflow node
*
* ObjId is set based on the element that the workflow is attached to.
* Following configuration should be applied to the comments field.
*
*
* # As IX function call
*
* In addition to the workflow node configuration the objId must be passed.
*
* sol.common.IxUtils.execute('RF_sol_dev_function_RenamePackage', {
* objId: "4711"
* });
*
* @author JHR, ELO Digital Office GmbH
* @version 1.1
*
* @eloix
* @requires handlebars
* @requires sol.common.SordUtils
* @requires sol.common.Map
* @requires sol.common.JsonUtils
* @requires sol.common.RepoUtils
* @requires sol.common.ObjectFormatter
* @requires sol.common.Template
* @requires sol.common.WfUtils
* @requires sol.common.ix.RfUtils
* @requires sol.common.ix.FunctionBase
*
*/
sol.define("sol.dev.ix.functions.RenamePackage", {
extend: "sol.common.ix.FunctionBase",
requiredConfig: ["objId"],
/**
* @cfg {String} objId (required)
*/
objId: undefined,
initialize: function (config) {
var me = this;
me.$super("sol.common.ix.FunctionBase", "initialize", [config]);
},
/**
* Moves the element to a new location.
*/
process: function () {
var me = this,
sordfs, sordf, i, sordps, sordp,
map, nameSpace, package, sordpname, replacement,
fullNameSpace, path1, path2, obj1Id, obj2Id;
if (!me.objId) {
throw "sol.dev.ix.functions.RenamePackage(): Object Id must not be empty";
}
sol.dev.ix.ActionUtils.setLogger(me.logger);
sol.dev.ix.ActionUtils.setObjId(me.objId);
me.config = sol.dev.ix.ActionUtils.loadConfigDev();
map = sol.create("sol.common.SordMap", {
objId: me.objId
});
map.read();
nameSpace = map.getValue("NAMESPACE");
package = map.getValue("PACKAGE");
fullNameSpace = map.getValue("FULLNAMESPACE");
if ((!fullNameSpace) || (fullNameSpace == "")) {
fullNameSpace = map.getValue("NAMESPACE") + "." + map.getValue("PACKAGE");
}
path1 = me.config.solutionFolderPath + "/" + fullNameSpace;
path2 = me.config.customSolutionFolderPath + "/" + fullNameSpace;
obj1Id = sol.common.RepoUtils.getObjId(path1);
obj2Id = sol.common.RepoUtils.getObjId(path2);
sordps = [];
sordfs = sol.common.RepoUtils.findChildren(obj1Id, { recursive: true, level: -1, includeDocuments: true, includeFolders: true, includeReferences: true, name: "n.p.config" });
for (i = 0; i < sordfs.length; i++) {
sordf = sordfs[i];
sordps.push(sordf);
}
sordfs = sol.common.RepoUtils.findChildren(obj2Id, { recursive: true, level: -1, includeDocuments: true, includeFolders: true, includeReferences: true, name: "n.custom.p.config" });
for (i = 0; i < sordfs.length; i++) {
sordf = sordfs[i];
sordps.push(sordf);
}
for (i = 0; i < sordps.length; i++) {
sordp = sordps[i];
sordp = sol.common.RepoUtils.getSord(sordp.id);
sordpname = sordp.name;
replacement = nameSpace + "." + package + ".config";
sordpname = sol.common.StringUtils.replaceAll(sordpname, "n.p.config", replacement);
replacement = nameSpace + ".custom." + package + ".config";
sordpname = sol.common.StringUtils.replaceAll(sordpname, "n.custom.p.config", replacement);
sordp.name = sordpname;
ixConnect.ix().checkinSord(sordp, SordC.mbAllIndex, LockC.NO);
}
me.logger.info(["rename package sords"]);
}
});
/**
* @member sol.dev.ix.functions.RenamePackage
* @static
* @inheritdoc sol.common.ix.FunctionBase#onEnterNode
*/
function onEnterNode(clInfo, userId, wFDiagram, nodeId) {
logger.enter("onEnterNode_RenamePackage", { flowId: wFDiagram.id, nodeId: nodeId });
var params = sol.common.WfUtils.parseAndCheckParams(wFDiagram, nodeId),
module;
params.objId = wFDiagram.objId;
module = sol.create("sol.dev.ix.functions.RenamePackage", params);
module.process();
logger.exit("onEnterNode_RenamePackage");
}
/**
* @member sol.dev.ix.functions.RenamePackage
* @static
* @inheritdoc sol.common.ix.FunctionBase#onExitNode
*/
function onExitNode(clInfo, userId, wFDiagram, nodeId) {
logger.enter("onExitNode_RenamePackage", { flowId: wFDiagram.id, nodeId: nodeId });
var params = sol.common.WfUtils.parseAndCheckParams(wFDiagram, nodeId),
module;
params.objId = wFDiagram.objId;
module = sol.create("sol.dev.ix.functions.RenamePackage", params);
module.process();
logger.exit("onExitNode_RenamePackage");
}
/**
* @member sol.dev.ix.functions.RenamePackage
* @method RF_sol_dev_function_RenamePackage
* @static
* @inheritdoc sol.common.ix.FunctionBase#RF_FunctionName
*/
function RF_sol_dev_function_RenamePackage(iXSEContext, args) {
logger.enter("RF_sol_dev_function_RenamePackage", args);
var params = sol.common.ix.RfUtils.parseAndCheckParams(iXSEContext, arguments.callee.name, args, "objId"),
module = sol.create("sol.dev.ix.functions.RenamePackage", params);
module.process();
logger.exit("RF_sol_dev_function_RenamePackage");
}